#include "Joypad.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

////////////////////////////////////////////////////////////////////////////////////////////////////

Joypad::Joypad() {
    m_Index = 0;
    m_Keys = ( unsigned char* )malloc( 8 );
    memset( m_Keys, 0, 8 );
}

////////////////////////////////////////////////////////////////////////////////////////////////////

Joypad::~Joypad() {
    free( m_Keys );
}

////////////////////////////////////////////////////////////////////////////////////////////////////

void Joypad::SetInput( int key ) {
    m_Keys[ key ] = 0x01;
}

////////////////////////////////////////////////////////////////////////////////////////////////////

void Joypad::ClearInput( int key ) {
    m_Keys[ key ] = 0x40;
}

////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char Joypad::Strobe() {
    unsigned char t = m_Keys[ m_Index++ ];
    if( m_Index == 8 ) m_Index = 0;

    return t;
}

////////////////////////////////////////////////////////////////////////////////////////////////////